package com.hxzy.mapper.system;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.dto.system.SysMenuAllDTO;
import com.hxzy.entity.system.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface SysMenuMapper extends BaseMapper<SysMenu> {



    /**
     * 根据所有的菜单（组装前端菜单用）
     *
     * @return 菜单列表
     */
     List<SysMenu> selectMenuTreeAll();

    /**
     * 根据用户id分配菜单查询
     * @param userId
     * @return
     */
    List<SysMenu> selectMenuTreeByUserId(Long userId);


    /**
     * 根据用户id分配菜单ID
     * @param userId
     * @return
     */
    List<Long> selectMenuTreeByUserIdOwner(Long userId);

    @Select(value = "select id,menu_name,parent_id,order_num,path,component,`query`,is_frame,is_cache,menu_type,visible,`status`,perms,icon,remark from sys_menu where id=#{id}")
    SysMenu findById(Long id);

    /**
     * 角色分配权限的数据
     * @return
     */
    @Select(value="SELECT id,menu_name,parent_id  from  sys_menu where `status`='0'  order by parent_id,order_num")
    List<SysMenu> findTreeMenu();

    /**
     * 根据所有的菜单（前端菜单用）
     *
     * @return 菜单列表
     */
    List<SysMenu> selectMenuTreeAllTou(@Param("name") String name,@Param("status") Byte status);
}